﻿using app.Common;
using HLVControl.Grid;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.Entity;
using System.Data.EntityClient;
using System.Data.Objects.SqlClient;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace eService.BLL
{
    //COMPANYINFO
    public class ExcuteCONGTY
    {
        eServiceEntities dbEntities;
        IExecuteData<COMPANYINFO> Execute;
        public string ErrMsg { get; set; }
        public bool KQ { get; set; }

        public ExcuteCONGTY()
        {
            dbEntities = ConnectionProvider.getDbEntities();
            Execute = new ExecuteData<COMPANYINFO>(dbEntities);
        }
        public List<COMPANYINFO> GetAll()
        {
            List<COMPANYINFO>  list = (List<COMPANYINFO>)Execute.GetAll();
            if (list != null && list.Count>0) KQ = true;
            return list;
        }
        public COMPANYINFO GetByID(string ID)
        {
            COMPANYINFO u = Execute.GetById(ID);
            if (u != null) KQ = true;
            return u;
        }

        public bool Add(COMPANYINFO NewCONGTY)
        {
            KQ = false;
            if (NewCONGTY != null)
            {
                KQ = Execute.Insert(NewCONGTY);
                if (KQ)
                    ErrMsg = "Thêm công ty mới thành công!";
                else
                    ErrMsg = "Không thể thêm công ty mới!";
            }
            else
            {
                ErrMsg = "Vui lòng nhập thông tin đầy đủ!";
            }
            return KQ;
        }
        public bool UpDate(COMPANYINFO CONGTY)
        {
            KQ = false;
            if (CONGTY != null)
            {
                COMPANYINFO obj = dbEntities.COMPANYINFOes.Find(CONGTY.CompanyID);
                if (obj != null)
                {
                    KQ = Execute.Update(CONGTY, obj);
                    if (KQ)
                        ErrMsg = "Cập nhật công ty thành công!";
                    else
                        ErrMsg = "Không thể cập nhật công ty !";
                }
            }
            else
            {
                ErrMsg = "Vui lòng chọn công ty !";
            }
            return KQ;
        }
        public bool Delete(COMPANYINFO CONGTY)
        {
            KQ = false;
            if (CONGTY != null)
            {
                COMPANYINFO obj = dbEntities.COMPANYINFOes.Find(CONGTY.CompanyID);
                if (obj != null)
                {
                    KQ = Execute.Delete(obj);
                    if (KQ)
                        ErrMsg = "xoá công ty thành công!";
                    else
                        ErrMsg = "Không thể xoá công ty !";
                }
            }
            else
            {
                ErrMsg = "Vui lòng chọn công ty !";
            }
            return KQ;
        }
        public COMPANYINFO LoadValues(string Ma,string DiaChi,string Email, string Fax, string QuanLy, string Ten,string DienThoai,string Website)
        {
            KQ = false;
            COMPANYINFO obj = new COMPANYINFO();
            if (Ten != "")
            {
                obj.CompanyID = Ma;
                obj.CompanyAddress = DiaChi;
                obj.CompanyEmail = Email;
                obj.CompanyFax = Fax;
                obj.CompanyManager = QuanLy;
                obj.CompanyName = Ten;
                obj.CompanyPhone = DienThoai;
                obj.CompanyWebsite = Website;
                
                KQ = true;
            }
            else
            {
                obj = null;
                ErrMsg = "Vui lòng điền tên công ty!";
            }
            return obj;
        }
        public DataTable ToDataTable(List<COMPANYINFO> list)
        {
            DataTable dtData = Execute.ToDataTable<COMPANYINFO>(list);
            return dtData;
        }
        public bool LoadToTreeview(TreeListView treeview, List<COMPANYINFO> list)
        {
            KQ = false;
            DataTable dtData = Execute.ToDataTable<COMPANYINFO>(list);
            KQ = Execute.FillDataToTreeView(dtData, treeview);
            if (!KQ)
                ErrMsg = "Không thể tải công ty!";
            return KQ;
        }
    }
}
